
	package DAO;

	import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

	import Modelo.*;
import DBConection.ConexionBD;

	public class EmpleadoDao {

	    private Connection conn;

	    public EmpleadoDao() {
	        conn = ConexionBD.getConnection();
	    }

	    public void addEmpleado(Empleado objempleado) {
	       
	    	
	    	try {
	        	  
	        	String sql = "INSERT INTO "+ConexionBD.getNombre_BD()+".TBL_Empleados(EmpleadoId,DependenciaId,Fecha_Inicio,Fecha_Fin,Responsable,CargoId,Descripcion,Estado)" +
	                " VALUES (?, ?, ?, ?, ?, ?, ?, ? )";
	            PreparedStatement ps = conn.prepareStatement(sql);
	            ps.setInt(1, objempleado.getEmpleadoId());
	            ps.setInt(2, objempleado.getDependenciaId());
	            ps.setDate(3, (Date) objempleado.getFecha_Inicio());
	            ps.setDate(4, (Date) objempleado.getFecha_Fin());
	            ps.setString(5, objempleado.getResponsable());
	            ps.setInt(6, objempleado.getCargo());
	            ps.setString(7, objempleado.getDescripcion());
	            ps.setInt(8, objempleado.getEstado());
	            ps.executeUpdate();

	        } catch (SQLException e) {
	            e.printStackTrace();
	        }
	    }

	    public void removeEmpleado(int empleadoId) {
	        try {
	                String sql = "DELETE FROM "+ConexionBD.getNombre_BD()+".TBL_Empleados WHERE EmpleadoId=?";
	            PreparedStatement ps = conn.prepareStatement(sql);
	            ps.setInt(1, empleadoId);
	            ps.executeUpdate();

	        } catch (SQLException e) {
	            e.printStackTrace();
	        }
	      }

	    public void editEmpleado(Empleado objempleado) {           
	        try {
	                String sql = "UPDATE "+ConexionBD.getNombre_BD()+".TBL_Empleados SET EmpleadoId=?,DependenciaId=?,Fecha_Inicio=?,Fecha_Fin=?,Responsable=?,CargoId=?,Descripcion=?, Estado=?" + 
	            " WHERE EmpleadoId=?";
	            PreparedStatement ps = conn.prepareStatement(sql);
	           
	            ps.setInt(1, objempleado.getDependenciaId());
	            ps.setDate(2, (Date) objempleado.getFecha_Inicio());
	            ps.setDate(3, (Date) objempleado.getFecha_Fin());
	            ps.setString(4, objempleado.getResponsable());
	            ps.setInt(5, objempleado.getCargo());
	            ps.setString(6, objempleado.getDescripcion());
	            ps.setInt(7, objempleado.getEstado());
	            ps.setInt(8, objempleado.getEmpleadoId());
	            ps.executeUpdate();            

	        } catch (SQLException e) {
	            e.printStackTrace();
	        }
	    }
	    
	    public List<Empleado> getAllEmpleados() {
	        List<Empleado> objempleados = new ArrayList();
	        try {
	            String sql = "SELECT * FROM "+ConexionBD.getNombre_BD()+".TBL_Empleados";
	            PreparedStatement ps = conn.prepareStatement(sql);
	            ResultSet rs = ps.executeQuery();
	            while (rs.next()) {
	                Empleado objempleado = new Empleado();
	                objempleado.setEmpleadoId(rs.getInt("EmpleadoId"));
	                objempleado.setDependenciaId(rs.getInt("DependenciaId"));
	                objempleado.setFecha_Inicio(rs.getDate("Fecha_Inicio"));
	                objempleado.setFecha_Fin(rs.getDate("Fecha_Fin"));
	                objempleado.setResponsable(rs.getString("Responsable"));
	                objempleado.setCargo(rs.getInt("CargoId"));
	                objempleado.setDescripcion(rs.getString("Descripcion"));
	                objempleado.setEstado(rs.getInt("Estado"));
	                objempleados.add(objempleado);
	            }
	        } catch (SQLException e) {
	            e.printStackTrace();
	        }

	        return objempleados;
	    }

	    public Empleado getEmpleadoById(int EmpleadoId) {
	    	Empleado objempleado = new Empleado();
	        try {
	                String sql = "SELECT * FROM "+ConexionBD.getNombre_BD()+".TBL_Empleados WHERE EmpleadoId=?";
	            PreparedStatement ps = conn.
	                    prepareStatement(sql);
	            ps.setInt(1, EmpleadoId);
	            ResultSet rs = ps.executeQuery();

	            if (rs.next()) {
	            	objempleado.setEmpleadoId(rs.getInt("EmpleadoId"));
	                objempleado.setDependenciaId(rs.getInt("DependenciaId"));
	                objempleado.setFecha_Inicio(rs.getDate("Fecha_Inicio"));
	                objempleado.setFecha_Fin(rs.getDate("Fecha_Fin"));
	                objempleado.setResponsable(rs.getString("Responsable"));
	                objempleado.setCargo(rs.getInt("CargoId"));
	                objempleado.setDescripcion(rs.getString("Descripcion"));
	                objempleado.setEstado(rs.getInt("Estado"));
	            }
	        } catch (SQLException e) {
	            e.printStackTrace();
	        }
	        return objempleado;
	    }
	}


